(1).检查Framework Search Paths和 Head Search Paths中的路径是否填写正确
(2).确认是否将tingyunApp.framwork文件“Copy”到工程中
2、使用CocoaPods导入SDK报错(The dependency ’tingyunApp’ is not used in any concrete target)
出错原因是没有用到指定的target,解决办法:在Podfile中添加如下内容,再执行pod install(或者pod update):
target 'MyApp’ do
pod ‘tingyunApp'
end (MyApp 请替换为自己工程里面的target)
进入到~/Library/Caches/org.carthage.CarthageKitdependencies/目录下,
将对应的tingyunApp文件夹删除,然后在工程的根目录下执行carthage update
(1).确认是否添加初始化代码
(2).确认是否重写过NSLog,如果重写的话可能会导致SDK打印的日志无法显示
(1).检查报表端是否禁用了当前应用
(2).确认当前月活是否超过套餐购买月活数
(3).确认安全验证里是否设置了bundleID,并检查其正确性
用户使用的网络协议库是否支持,iOS SDK支持的协议库: NSURLConnection 、ASIHttpRequest、AFNetworking、UIWebview、 NSURLSession(iOS 8及其以上版本)
(1).SDK 2.5.4版本之后,SDK去除socket的模块,iOS8及其以下系统的无法采集TCP数据
(2).SDK 2.5.4版本之前,iOS 9、10、11无法采集TCP数据
(3).SDK 2.5.0版本之后,只有iOS 10.2及其以上设备的NSURLSession请求(设置delegate方法)、Webview请求以及AFNetworking请求才可以采集到TCP数据
确认是否为iOS 8及其以上的设备,基调基调听云SDK在iOS 8以后才支持NSURLSession
(1).一般是正则表达式配置问题,可以通过在线正则工具检查,需注意报表配置正则的前后需要加斜杠
(2).是否配置完毕之后立即查看?(保存配置后需要等待一两分钟,生效后即可登录报表查看)
(1).基调基调听云SDK不支持对模拟器的崩溃采集
(2).是否嵌入其他SDK?2.3.2以后SDK已经兼容第三方SDK的崩溃采集,需将SDK初始化代码放置于其他第三方SDK初始化代码之后,以保证基调基调听云SDK可以正常采集到崩溃数据且第三方SDK也能采集到崩溃数据,故建议将基调基调听云SDK放在其他第三方SDK后进行初始化(注:如果启动位置正确还是无法采集到崩溃,可能是由于其他SDK做了特殊处理使得他们SDK crash采集的handler在基调基调听云SDK crash采集的handler之后启动)
(3).如果通过Xcode安装到手机后发生崩溃,基调基调听云SDK仅支持Exception类型崩溃采集
(4).若应用启动之后立即崩溃,则崩溃采集的handler不能及时启动,导致基调基调听云SDK无法采集崩溃数据
(5).如果为被系统杀掉或者是由于内存警告导致的闪退,则基调基调听云SDK无法采集这类数据
(6).基调基调听云SDK的崩溃采集逻辑是本次崩溃,需要下次启动之后才会上传崩溃数据
(7).确认报表是否开启崩溃采集开关
(1).检查报表是否开启WebView模块开关
(2).确认WebView的delegate是否为ViewController
(3).如果页面加载过程中没有调用onload或者unload事件,则基调基调听云SDK无法采集该WebView性能数据
(4).如果页面加载过程中调用了onload或者unload事件,但是访问的页面url却为”about:blank”,基调基调听云SDK无法采集该WebView性能数据
(5).确认设备是否为iOS 10.2及其以上系统
(1).确认用户是否在main函数中嵌码,如果是其他位置嵌码,基调基调听云SDK无法采集启动时间数据
(2).检查报表是否开启UI模块开关,用户启动时间模块是由UI开关控制的,关闭之后基调基调听云SDK无法采集启动时间数据
确认上传的dsym文件是否正确,步骤如下:
(1).登录报表进入到崩溃详情界面,去掉格式化,查看binaryImage下第一行信息
(2).查看dsym UUID:打开终端进入到dsym文件的目录下, 执行dwarfdump -u xxx (xxx为dsym名字),执行后会显示出dsym的UUID
如果嵌入SDK后发现采集NSException崩溃堆栈不正确,请将SDK放在application: didFinishLaunchingWithOptions方法中最后初始化或者将SDK放在main函数中初始化.